// API 基础配置
const API_BASE_URL = 'http://60.205.2.196:8001';

/**
 * HTTP 请求封装 - 使用 weapp-cookie 自动管理 Cookie
 * @param {Object} options - 请求配置
 * @param {string} options.url - 请求URL（完整URL或相对路径）
 * @param {string} options.method - 请求方法 (GET/POST/PUT/DELETE)
 * @param {Object} options.data - 请求数据
 * @param {boolean} options.needAuth - 是否需要认证（默认true）
 */
function http({
  url,
  method = "GET",
  data = {},
  needAuth = true
}) {
  return new Promise((resolve, reject) => {
    // 构建完整URL
    let fullUrl = url;
    if (!url.startsWith('http')) {
      fullUrl = API_BASE_URL + url;
    }

    // 构建请求头
    const header = {
      'Content-Type': 'application/json'
    };

    console.log('HTTP请求:', method, fullUrl, data);

    // weapp-cookie 会自动拦截 wx.request 并管理 Cookie
    // 不需要手动添加 Cookie 头或保存 Session
    wx.request({
      url: fullUrl,
      method: method,
      data: data,
      header: header,
      
      success: res => {
        console.log('HTTP响应:', res);
        console.log('响应状态:', res.statusCode);

        // 处理响应
        if (res.statusCode === 200) {
          // 后端成功状态码可能是 0, 1, 或 200
          if (res.data.code === 0 || res.data.code === 1 || res.data.code === 200) {
            resolve(res.data);
          } else {
            reject({
              code: res.data.code,
              msg: res.data.msg || res.data.message || '请求失败'
            });
          }
        } else if (res.statusCode === 401) {
          reject({
            code: 401,
            msg: '未授权，请重新登录'
          });
        } else if (res.statusCode === 404) {
          reject({
            code: 404,
            msg: '接口不存在'
          });
        } else {
          reject({
            code: res.statusCode,
            msg: `请求失败 (${res.statusCode})`
          });
        }
      },
      
      fail: err => {
        console.error('HTTP请求失败:', err);
        reject({
          code: -1,
          msg: '网络请求失败，请检查网络连接',
          error: err
        });
      }
    });
  });
}

export default http;